﻿using System;

namespace 里氏转换
{
    class Program
    {
        static void Main(string[] args)
        {
            //1.子类可以赋值给父类  如果有一个地方需要一个父类作为参数，我们可以给一个子类代替，
            //Persom a = new Xuesheng();//子类可以赋值给父类
            //string str= string.Join("|", new string[] { "1", "2", "3", "4" });
            //Console.WriteLine(str);//如果有一个地方需要父类作为参数我们可以给一个子类代替

            //2.如果父类中装的是子类对象，那么可以将这个父类强转为子类对象
            //Xuesheng cd = (Xuesheng)a;
            //cd.B();
            //子类对象可以调用父类中的成员，但是父类对象永远都只能调用自己的成员
            //Persom c = new Persom();
            // c.A();//只能调用父类自己的成员
            //is用法
            //Persom a = new Xuesheng();
            //if (a is Xuesheng)
            //{
            //    Xuesheng b = (Xuesheng)a;
            //    b.B();
            //}
            //else
            //{
            //    Console.WriteLine("转换失败");
            //}
            //as用法
            //Persom a = new Xuesheng();
            //Xuesheng aaa = a as Xuesheng;
            //aaa.B();
            //Persom[] persoms = new Persom[10];
            //Random a = new Random();
            //for (int i = 0; i < persoms.Length; i++)
            //{
            //    int ran= a.Next(1, 7);
            //    switch (ran)
            //    {
            //        case 1:persoms[i] = new Persom();
            //            break;
            //        case 2:persoms[i] = new Xuesheng();
            //            break;
            //        case 3: persoms[i] = new Mein();
            //            break;
            //        case 4: persoms[i] = new Shuaige();
            //            break;
            //        case 5: persoms[i] = new Laoshi();
            //            break;
            //        case 6: persoms[i] = new Yeshou();
            //            break;
            //    }
            //}
            //for (int i = 0; i < persoms.Length; i++)
            //{
            //    if(persoms[i] is Xuesheng)
            //    {
            //        ((Xuesheng)persoms[i]).B();
            //    }
            //    else if (persoms[i] is Mein)
            //    {
            //        ((Mein)persoms[i]).D();
            //    }
            //    else if(persoms[i] is Shuaige)
            //    {
            //        ((Shuaige)persoms[i]).E();
            //    }
            //    else if (persoms[i] is Laoshi)
            //    {
            //        ((Laoshi)persoms[i]).C();
            //    }
            //    else if(persoms[i] is Yeshou)
            //    {
            //        ((Yeshou)persoms[i]).F();
            //    }
            //    else
            //    {
            //        persoms[i].A();
              //  }
           // }


            
            Console.ReadKey();
        }
    }
}
